package iut2.sponsor.client;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * Classe representant un sponsor ayant donne de l'argent a l'association
 */
public class SponsorArgent extends Sponsor  implements IsSerializable{
	/**
	 * Montant offert par le sponsor
	 */
	private Integer montant = 0;
	/**
	 * Nombre de dons fait par le sponsor
	 */
	private Integer nbDons  = 0;
	
	/**
	 * Emplacement sur le flyer, -1 pour les nouveaux
	 */
	private Integer emplacement = -1;
	
	/**
	 * Constructeur par defaut pour la serialization
	 */
	public SponsorArgent() {
	}
	
	/**
	 * Constructeur initialisant les valeur des attributs
	 * 
	 * @param name    Nom du sponsor
	 * @param logo    Url du logo du sponsor
	 * @param adresse Adresse du sponsor
	 */
	public SponsorArgent(String name, String logo, String adresse) {
		super(name, logo, adresse);
	}
	
	/**
	 * Constructeur initialisant les valeur des attributs
	 * 
	 * @param name    Nom du sponsor
	 * @param logo    Url du logo du sponsor
	 * @param adresse Adresse du sponsor
	 * @param montant Montant du don du sponsor
	 */
	public SponsorArgent(String name, String logo, String adresse, int montant) {
		super(name, logo, adresse);
		this.montant = montant;
		this.nbDons  = 1;
	}
	
	/**
	 * Constructeur initialisant les valeur des attributs
	 * 
	 * @param name    Nom du sponsor
	 * @param logo    Url du logo du sponsor
	 * @param adresse Adresse du sponsor
	 * @param montant Montant du don du sponsor
	 * @param emplacement Emplacement du sponsor sur le flyer
	 */
	public SponsorArgent(String name, String logo, String adresse, int montant, int emplacement) {
		super(name, logo, adresse);
		this.montant = montant;
		this.nbDons  = 1;
		this.emplacement = emplacement;
	}

	/**
	 * @param montant le montant a donner au sponsor
	 */
	public void setMontant(Integer montant) {
		this.montant = montant;
	}

	/**
	 * @param nbDons le nombre de dons a donner au sponsor
	 */
	public void setNbDons(Integer nbDons) {
		this.nbDons = nbDons;
	}
	
	/**
	 * @param montant Montant a ajouter au don deja effectue par le sponsor
	 */
	public void addMontant(int montant) {
		this.montant += montant;
		nbDons++;
	}
	
	/**
	 * @param montant Montant a enlever au don deja effectue par le sponsor
	 */
	public void remMontant(int montant) {
		this.montant -= montant;
	}
	
	/**
	 * @return le montant offert par le sponsor
	 */
	public Integer getMontant() {
		return this.montant;
	}
	
	/**
	 * @return le nombre de dons effectues par le sponsor
	 */
	public Integer getNbDons() {
		return nbDons;
	}

	/**
	 * @param emplacement l'emplacement a affecter au sponsor
	 */
	public void setEmplacement(Integer emplacement) {
		this.emplacement = emplacement;
	}

	/**
	 * @return l'emplacement du sponsor
	 */
	public Integer getEmplacement() {
		return emplacement;
	}
}
